﻿namespace ElevatorDispatching
{
    /// <summary>
    /// 电梯调度系统的主接口
    /// </summary>
    public interface IElevatorDispatcher
    {
        /// <summary>
        /// 系统控制的所有电梯轿厢
        /// </summary>
        IElevatorGroup Elevators { get; }

        /// <summary>
        /// 系统关联的所有楼层
        /// </summary>
        IFloorGroup Floors { get; }

        /// <summary>
        /// 电梯系统的基站楼层
        /// </summary>
        Floor BaseFloor { get; }

        /// <summary>
        /// 响应呼层呼梯信号
        /// </summary>
        /// <param name="signal">呼层呼梯信号</param>
        /// <returns>指示信号是否被处理</returns>
        bool HandleCallSignal(ICallSignal signal);
    }
}